#ifndef PUNTO_H
#define PUNTO_H

//using namespace std;

class Punto{

private:
	unsigned short int x;
	unsigned short int y;
	short int velocidadRestante ;
	short int factorVelocidad ;

	void actualizarVelocidadRestante();
	bool deboMoverme();
	void iniciarVelocidad();

public:
	static short int Punto::VELOCIDAD_MAXIMA ;
	
	Punto();
	Punto(unsigned short int x, unsigned short int y);
	Punto(Punto* punto);

	bool operator==(const Punto& punto);

	float distanciaCon(Punto* punto);
	bool equals(Punto* punto);
	~Punto();

    void incrementarX();
   	void incrementarY();
    void decrementarX();
    void decrementarY();

	void setFactorVelocidad(short int unFactorVelocidad);
	void setVelocidadRestante(short int unaVelocidadRestante);
	short int getFactorVelocidad();
	short int getVelocidadRestante();

	void copiarValores(Punto *otroPunto);

	short int getDesplazamientoX(Punto *otroPunto);
	short int getDesplazamientoY(Punto *otroPunto);
	float getDistancia(Punto *otroPunto);

	unsigned short int getX();
	unsigned short int getY();
	void setX(unsigned short int nuevoX);
	void setY(unsigned short int nuevoY);
	bool coordenadasIguales(Punto* otroPunto);

};

#endif
